package practice.Day14;

import java.util.Scanner;

/**
 * @Author quan
 * @Description 日期转换:根据输入的日期，计算是这一年的第几天
 * @Date 2023/5/23 10:03
 */
public class Num1_DataReverse {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
            int year = sc.nextInt();
            int month = sc.nextInt();
            int day = sc.nextInt();
            int nowDays = nowDays(year,month,day);
            System.out.println(nowDays);
        }
    }

    /**
     * 根据输入的日期，返回这是这一年的第几天
     * 2月比较特殊。闰年的时候是29天；不是闰年的时候是28天。
     * @param year 年
     * @param month 月
     * @param day 日
     * @return
     */
    private static int nowDays(int year,int month, int day) {
        //1、定义数组，先定义出每个月的天数，2月比较特殊
        int[] arr = {31,28,31,30,31,30,31,31,30,31,30,31};
        //2、区分当前年是不是闰年：是闰年的话，更新2月份的天数
        if(year%4==0 && (year%100)!=0 || year%400==0){
            arr[1] = 29;
        }
        //3、输入数据的合法性校验
        if(year<=0 || month <=0 || month>12 || day<=0 || day>arr[month-1]){
            return -1;
        }
        //4、计算当前天数:注意这里的月份只取到month-1,3月就是取1,2月份，然后3月份的日期就是当前day
        int sum = 0;
        for (int i = 0; i < month-1; i++) {
            sum+=arr[i];
        }
        //5、输出：注意这里要加上当前月的天数
        return sum+day;
    }
}
